When creating a report from versioned data, such as accounting ledgers and audit records, it is often difficult to determine which versions of individual records or ledger entries to include in the report. Moreover, it can be even more difficult to determine how to apply filters and sorting rules to the versioned data to obtain the desired results.
Most existing systems approach this problem in one of two ways: (1) they only apply the filter to the most recent version of a record or a ledger item, and they return the most recent version of a record or a ledger item that passes the filter; or (2) they apply the filter to all versions of a record or a ledger item and return all versions of the record or the ledger item that pass the filter.
Filtering on and returning the most recent version of a record or a ledger item is rather simplistic, and often causes important information not to be displayed to a user. Furthermore, filtering on all versions frequently returns too much information that can be confusing to a user, and still does not provide potentially valuable information to the user that may be contained in versions of a record or a ledger item that did not pass the filter.